home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 1996 April
/
CHIP 1996 aprilis (CD06).zip
/
CHIP_CD06.ISO
/
hypertxt.arj
/
9302
/
HORNAK.CD
< prev
next >
Wrap
Text File
|
1995-04-18
|
26KB
|
442 lines
@VVírusvédelmi módszerek, megvalósítások@N
Aki ma számítógéppel dolgozik, annak gondolnia kell a
vírusok elleni védekezésre is. Az eddig elterjedt
víruskereséses módszerek mellett egyre nagyobb szerepet
kapnak a különféle vírusvédelmi termékek. Közöttük azonban
nehéz eligazodni. Ehhez kívánunk némi segítséget nyújtani.
A számítógépvírusok elleni harc ma már több fronton is
zajlik. Ennek csak egyik, bár máig is legfontosabb színtere
a víruskeresés, hogy a megtalált kórokozókat utána ""kézi"
módszerekkel kiiktathassuk, és helyreállíthassuk a
programokat és az adatokat. A megelôzés, sôt az aktív
védekezés is csak az utóbbi években jutott el arra a
szintre, hogy komoly segítséget jelentsen a vírusok elleni
küzdelemben. Ha már az alább ismertetett lehetôségek a
rendelkezésünkre állnak, ne habozzunk élni velük.
@VVédekezés a vírusok ellen@N
Manapság legtöbben úgy védekeznek a vírusok ellen, hogy
állandóan begyûjtik a legújabb víruskeresôket, és
segítségükkel döntik el, hogy a számítógépükre felkerült
programok vírusmentesek-e. Emellett egyre többen használnak
vírusvédelmi termékeket is. Szándékosan használtam a
""termék" szót a ""program" helyett, mert amint azt késôbb
látni fogjuk, a vírusok ellen úgynevezett víruskártyás
védelmek is léteznek már.
A védekezés lehetôségeinek megértéséhez elengedhetetlen,
hogy ismerjük a vírusok fertôzésének, terjedésének módját.
A Neumann-elv szerint a számítógép számára a futtatható
program kódja és az adatok egymásba áttranszformálhatók,
nincsenek egymástól elkülönítve a memóriában. Az adatok és
programok tárolása a DOS feladata, s a DOS -- hasonlóan a
Neumann-elvhez -- nem különbözteti meg a futtatható
file-okat és az adatfile-okat. Például egy futtatható
programot, mondjuk a COMMAND.COM-ot, akár ki is
nyomtathatunk. Természetesen az eredmény egy csomó
értelmetlen karakter lesz a kinyomtatott papíron. A DOS az
ellenkezô irányú átalakítást is megengedi: akár egy
szövegfile-t (például egy README.TXT nevût) is
elindíthatunk a @KRENAME README.TXT README.COM@N, majd ezt
követôen a @KREADME.COM@N parancsokkal.
Természetesen ekkor a gép semmi értelmeset sem fog
csinálni, hiszen számára a README.TXT file ugyanolyan
értelmetlen, mint számunkra a COMMAND.COM kinyomtatott
listája. Åm lehetséges, hogy a futtatható kód és az adatok
közötti ilyenfajta transzformáció következtében egy, a gép
számára értelmes kód lesz az eredmény. Ez az a lehetôség,
ami megengedi vírusok létezését. Ugyanis egy vírus
fertôzésekor, szaporodásakor önmagát -- a futtatható kódot
-- adattá alakítja, majd így, mint adatot, önmagát
lemásolja. Ezután ismét futtatható kóddá visszaváltozva
létrejön a vírus másolata. A valóságban, mivel a
PC-architektúra és a DOS egyáltalán nem törôdik az adat és
a futtatható kód közötti különbséggel -- gyakorlatilag
minden egyszerre adat és kód is egyben -- a fenti
transzformáció csak képletesen hajtódik végre. Ennek
ellenére tisztában kell lennünk azzal, hogy csak ennek
köszönhetôen létezhetnek vírusok.
Nyilvánvaló, hogy a vírusok létezését, terjedését csak úgy
lehet megakadályozni, ha az adatok és a futtatható kódok
között mindenféle átalakítást megtiltunk, vagy legalább
felügyelünk. Mivel a PC-architektúra és a DOS is támogatja
ezt a vírusoknak kedvezô transzformációt, az egyetlen
biztos megoldás egy új típusú számítógép és egy, a DOS-tól
teljesen eltérô operációs rendszer használata lenne. Ez
elvileg ugyan megoldaná a gondokat, de a PC-felhasználók
milliós tábora nem fogja egyik napról a másikra lecserélni
a számítógépét. Åtmeneti megoldásként nem tehetünk mást,
védekezni kell a vírusok ellen, szaporodásukat vissza kell
szorítani.
A védekezésre többfajta módszert fejlesztettek ki,
mindegyiknek megvannak a maga elônyei, hátrányai és
korlátai. Az egyes megvalósítások eltérnek egymástól a
minôségben is. A védekezési módszereket általában három fô
csoportra szokás osztani:
-- alkalmi vagy rendszeres víruskeresés az ismert vírusok
felderítésére;
-- változásdetektorok,
-- általános vírusvédelmek.
@VAlkalmi vagy rendszeres víruskeresés@N
Ebbe a csoportba tartoznak a mindenki által jól ismert
víruskeresô és vírusirtó programok (SCAN és CLEAN, CPAV,
NAV, TNT, CHKVIR, SYSDOKI, PRGDOKI stb.). Segítségükkel az
általuk ismert vírusokat könnyû felismerni, sôt többségük a
felismert vírusokat irtani is tudja. Hátrányuk, hogy
állandóan a legfrissebb programváltozatra van szükség, s
ennek ellenére a ""legújabb" vírusokat nem ismerik fel.
Léteznek ismeretlen vírusokat felderítô módszerek is,
melyek egyik altípusa a több antivírus programnál
alkalmazott immunizálás. A másik típus hazai képviselôje a
CHKVIR, amely beépített processzorszimulátorával képes
vírusgyanús programok keresésére is.
A nagy és gyorsan növekvô vírusszám, valamint a
merevlemezen tárolt hatalmas adatmennyiség miatt a rendszer
vírusmentességének ellenôrzése sokáig eltart. Komoly gondot
okozhat, ha egy vírus már aktív a memóriában. Ilyenkor a
baci képes akár a vírusvadász programokat is becsapni, s
amikor a keresô a fertôzött file-t akarja megvizsgálni,
akkor a vírus a file-nak csak az eredeti, vírusmentes
állapotát mutatja -- és a keresôprogramok ilyenkor semmit
sem találnak. Ennek kivédésére a programok induláskor a
memóriát is ellenôrzik.
Egyre többen használnak EXE/COM tömörítô programokat, mint
amilyen az LZEXE és a PKLITE. Ha ezekkel a programokkal
sûrítettek össze egy vírusos file-t, akkor abban a vírus
csak úgy ismerhetô fel, ha átmenetileg, az ellenôrzés
idejére azt kicsomagolja a keresô. Azonban egyrészt nem
ismerhetnek minden sûrítôt a víruskeresôk, másrészt a
kibontás nagymértékben lassítja a keresést. Emellett az is
gátolja a vírusok felismerését, hogy az újabb vírusok már
önmagukat mutálva, megváltoztatva szaporodnak, így nehéz
ôket teljes biztonsággal felismerni. A víruskeresô
programok azon kívül, hogy nem mindig észlelik a fertôzést,
néha még vaklármát is csapnak. Ez olykor nagyobb kárt okoz,
mint egy valódi vírus.
Ebbe a csoportba tartoznak még a többé-kevésbé rendszeres
víruskeresést megvalósító programok is, például a VCOPY, a
VSHIELD, és a VIROVERSEER. A VCOPY nem más, mint a DOS COPY
parancsa helyett alkalmazandó program. Másolás közben
azonban ellenôrzi a file-ok vírusmentességét. Ha mindig a
VCOPY paranccsal másolunk file-okat gépünkre, sokkal
ritkábban van szükség az egész merevlemezre vagy a
hálózatra kiterjedô víruskeresésre. A VSHIELD-hez hasonló
programok pedig az elindított programokat és a megnyitott
file-okat ellenôrzik. Ha vírusos programot akarnánk
elindítani, akkor szólnak. Használatuk azért elônyös, mert
nem igénylik a felhasználó határozott közremûködését, a
vírusellenôrzés automatikusan zajlik.
A VSHIELD-tôl kissé eltérô módon keres vírust az elindított
programokban a VIRSEC vírusvédelme. Valójában nem is keresi
a vírust, hanem figyeli a gép mûködését, s ha az valamelyik
ismert vírusra jellemzô utasítássorozatot hajt végre, akkor
elkapja a vírust. Elônye, hogy a fentebb említett sûrített
file-okba is bele tud kukkantani, azokban is képes vírust
keresni.
@VVáltozásdetektorok@N
ùj, ismeretlen vírust úgy lehet a legkönnyebben elkapni, ha
figyeljük a lemezeken lévô adatok változását. Természetesen
ehhez az kell, hogy -- a késôbbi összehasonlítás érdekében
-- elôbb elmentsük a lemezen lévô file-okról a szükséges
információkat. E módszer másik elônye, hogy a tárolt adatok
alapján a file akár még akkor is visszaállítható, ha
ismeretlen vírus fertôzte meg a file-t.
Ma már a legtöbb víruskeresô programban (CPAV, NAV,
SYSDOKI) van olyan funkció, amely az összes megvizsgált
futtatható file-ról automatikusan eltárolja ezeket az
ellenôrzô információkat, és a késôbbiekben minden
ellenôrzéskor a víruskeresés mellett a file-ok változását
is figyeli. A CPAV (Central Point AntiVirus) és a SYSDOKI
ezt egész intelligensen teszi meg. Minden alkönyvtárban
létrehoznak egy-egy néhány Kbyte-os adatfile-t, amiben az
egyes file-ok adatait tárolják. Ezzel szemben a NAV (Norton
AntiVirus) -- minden figyelmeztetés, opcionális letiltási
lehetôség nélkül -- minden egyes EXE, COM, OVL, SYS
kiterjesztésû file-hoz létrehoz egy 77 byte hosszú rejtett
file-t. 77 byte egészen minimálisnak tûnik, de ha
figyelembe vesszük, hogy a DOS minden létrehozott file-nak
lefoglal egy clustert (lemezfoglalási egységet, ami 2048
byte), akkor ez a 77 byte a valóságban jóval több. Például
egy 80 Mbyte-os merevlemezen körülbelül 600 ilyen rejtett
file-t hozott létre, ami azt jelenti, hogy 600*2048 =
1|228|800 byte-ot foglalt le minden figyelmeztetés nélkül.
Ez egy kicsit túlzás.
A víruskeresô programokon kívül vannak kifejezetten
változásdetektor programok is. Ilyen például a VIRSEC és a
VIRUSSAFE program. Elônyük, hogy csak változást
detektálnak, így sokkal gyorsabbak a víruskeresôknél. Ez
azt jelenti, hogy az ellenôrzést minden rendszerindításkor
végre lehet hajtani. A VIRSEC-ben például a sebesség
növelése érdekében egy mindig végrehajtott elsôdleges
ellenôrzés mellett egy ritkábban végrehajtott másodlagos,
alaposabb ellenôrzés is beállítható. Hátrányuk, hogy egy
már memóriában lévô lopakodó (stealth) technikát alkalmazó
vírus felfedezésére ez a módszer nem alkalmas.
@VÅltalános vírusvédelmek@N
A vírusvédelmek már valamivel bonyolultabb felépítésûek
mint a víruskeresôk, hiszen a feladatuk sem olyan
egyértelmû. Céljuk bármilyen típusú vírus terjedésének
megakadályozása, a vírus mielôbbi felismerése.
Mint azt a bevezetôben láthattuk, a vírusokat általában
azon a ponton foghatjuk meg, ahol az adatok és a futtatható
kódok közötti transzformáció történik. Vagyis a COM, EXE,
BAT, OVL kiterjesztésû file-ok változtatásakor. Szinte az
összes általános vírusvédelem figyeli ezeknek a file-oknak
a változtatását, és illegális mûveletnél figyelmeztet az
esetleges vírusveszélyre. Az intelligensebb vírusvédelmek
lehetôséget biztosítanak az illegális mûveletek körének
megadására is. Például a VIRSEC vírusvédelem segítségével
egy teljes file-védelmi rendszer állítható össze. Akár
file-onként is kijelölhetôk az adott file-on végrehajtható
mûveletek. Sajnos egy illegális mûvelet kiadása után nem
lehet egyértelmûen eldönteni, hogy vírus adta-e ki a
parancsot, vagy a felhasználó szeretné azt végrehajtani,
ezért a legtöbb védelem ilyenkor -- egy ablakban --
megkérdezi a felhasználót, ô adta-e ki a parancsot vagy
gyanakodjon vírusra. Ha egy sûrûn használt program jogosan
akar illegálisnak minôsülô utasítást végrehajtani, akkor az
állandó üzenetek nagyon zavaróak lehetnek, ezért szükség
van a vírusvédelmek konfigurálhatóságára. Ez sajnos jópár
vírusvédelmi terméknél nem lehetséges.
Egy másik módszer a rezidenssé váló programokat figyeli.
Mivel a vírusok többsége szeret a memóriában maradni, ezért
ez a módszer ezek ellen elég hatékony lehet. Hátránya, hogy
sok vaklármát csap, és az elfogott vírusokat sem mindig
lehet kezelni, betelepedésüket megakadályozni.
E csoporton belül van a legnagyobb eltérés az egyes
termékek minôsége között. Ez leginkább annak köszönhetô,
hogy ezeket a szoftvereket nagyon nehéz tesztelni,
összehasonlítani. îgy eddig nem volt különösebb ösztönzô
erô az igazi fejlesztésre. Teszteltem már olyan külföldi
vírusvédelmet is, amelynek a dokumentációjában az állt, hogy
a program mûködése mesterséges inteligencián alapszik,
miközben a program csak ismert vírusokat fedezett fel, és
mindössze egy minimális file-védelemmel volt ellátva.
A vakriadók miatt egyes védelmek bizonyos környezetekben
egyáltalán nem használhatók, ráadásul kevés olyan
vírusvédelemmel találkozhatunk, amit igazán jól, rendszerre
szabottan lehetne konfigurálni. Ezért mielôtt bárki is egy
felkínált vírusvédelem vásárlására adná a fejét (és a
pénzét) gyôzôdjön meg róla, vajon az adott program az
általa használt szoftverekkel is együtt tud-e mûködni.
@VBoot-vírusok@N
Aki már foglalkozott vírusokkal, annak bizonyára feltûnt,
hogy eddig nem foglalkoztam a boot-vírusokkal. Ezt a
gonosztevô-családot teljesen külön kell bemutatni, ugyanis
ôk már nem a DOS operációs rendszerhez tartoznak, hanem a
PC-k indulásakor történô inicializáláshoz. îgy az elôzô
részben tárgyalt DOS-vírusokkal keverve csak rontották
volna az érthetôséget.
A boot-vírusok lényege az, hogy egy PC-n nem csupán EXE,
COM, OVL, stb. kiterjesztésû file-ok futtathatók, hanem a
bekapcsolás utáni inicializáláskor -- ezt a folyamatot
hívják bootolásnak -- betöltôdô MBR (master boot record, a
partíciós tábla programja), a boot szektorok, valamint a
rendszerfile-ok is. îgy a vírusok egy nagy csoportja ezeket
(is) fertôzi.
Az adat--kód transzformáció itt is megvan, hiszen ami
adatot a boot-szektorba írunk, az futtathatóvá válik,
valamint a boot-szektort is el tudjuk olvasni adatként.
Ezek alapján a boot-vírusok elleni védekezés egyszerû
lenne, hiszen csak az MBR és a boot szektorok felülírását
kellene megakadályozni, felügyelni. Elméletileg ez igaz is,
de a boot-vírusokkal az a baj, hogy az inicializálás alatt
az @KA:@N meghajtóban felejtett floppyról szoktak
elindulni, amikor a vírusvédelem még nem aktív. Ha pedig a
vírusvédelem a vírus után indul el, akkor a vírus azt
könnyedén kicselezheti.
A vírusvédelmeknek szükségük van annak kivédésére, hogy az
@KA:@N meghajtóban felejtett lemezrôl bootolni lehessen. Az
újabb gépek beépített setup programjai már képesek
opcionálisan letiltani az @KA:@N-ról való bootolást. Ahol
ilyen lehetôség nincs, ott többféle trükk is segíthet. A
legbiztonságosabb megoldás az, ha hardveresen gondoskodunk
arról, hogy ne legyen @KA:@N meghajtó. Ezt akkor tehetjük
meg, ha a számítógépben csak egy floppymeghajtó van. Ekkor
ezt a meghajtót az üres @KB:@N csatlakozóra átdugva a
rendszer nem képes az @KA:@N-ról bootolni, miközben a
meghajtó a továbbiakban -- mint @KB:@N meghajtó --
használható marad.
Mindenféle hardverátkötés nélkül, mindössze a CMOS RAM
módosításával is elérhetô, hogy inicializáláskor a BIOS ne
vegye észre az @KA:@N meghajtót. Ha az abszolút boot-tiltás
nem oldható meg, akkor a vírusvédelmek többféle módon
védekeznek a vírusos lemezek ellen. A legegyszerûbb, de
talán leghatásosabb módszer, hogy minden olyan esetben,
amikor az @KA:@N lemezrôl olvasnak, a védelem megvizsgálja
annak bootszektorát, s ha fertôzöttnek találja, akkor
figyelmezteti a felhasználót. Egyes védelmek addig nem
engednek bootolni melegindításnál ([Ctrl Alt Del), amíg
lemez van az @KA:@N meghajtóban.
Néhányan azonban nem elégedtek meg a ""félmegoldásokkal".
Külön antivírus kártyát építettek, melynek az a feladata,
hogy a vírusvédelmi program még a bootolás elôtt
elinduljon. Kártyás védelemnél biztosítva van, hogy a
védelem indulásakor még nincs vírus a gépben. De
bármennyire szépen hangzik, hogy hardveres a védelem, ennél
többet sajnos nem tehet.
Ha a fenti megoldások bármelyikével sikerül meggátolni az
@KA:@N meghajtóról való bootolást, akkor a @KC:@N-rôl
induló védelem ugyanazt a feladatot láthatja el, mint egy
kártya beégetett programja. A kártya vírusvédelmi része
sem más, mint egy megírt program. A különbség mindössze
annyi, hogy a program a kártya memóriájában található, s
így nem foglal helyet a központi memóriában. Åm ez is csak
félig igaz. Sokszor a 640 Kbyte fölötti részt is
használjuk rezidens programok tárolására, s a kártya onnan
lefoglal valamekkora helyet, hiszen egy PC-ben a
hardverelemek számára kijelölt hely a 640 Kbyte-os határ
fölött van. îgy elôfordulhat, hogy egy saját memóriával
rendelkezô kártya több RAM-ot foglal el, mint egy EMS-be
feltöltôdô rezidens vírusvédelem.
@VEgyéb cselesen szaporodó vírusok@N
Mivel az eddig felsorolt vírusvédelmi módszerek a
hagyományos vírusok ellen elég jó hatékonyságot értek el,
az újabb vírusok már mindenféle cseles szaporodási módot
alkalmaznak a vírusvédelmek kijátszására. Egy jó védelmet
az is jellemez, hogy ezek közül az újabb generációs
terjedési módok közül melyeket ismer. Néhány cseles
módszer:
A @KCEB-vírusok@N (companion-vírusok) a DOS-nak azt a
tulajdonságát használják ki, hogy ha egymás mellett azonos
néven van egy COM, és egy EXE, vagy BAT file, és a
parancssorban nem adjuk meg a file kiterjesztését, akkor
mindig a COM kiterjesztésû indul el. Egy CEB-vírus úgy
fertôz EXE és BAT file-okat, hogy velük azonos néven
létrehoz egy rejtett, COM kiterjesztésû file-t, ami magát a
vírust tartalmazza. îgy az eredeti program helyett mindig a
vírus fog elindulni.
A @KFAT-vírusok@N legszebb példája az utóbbi idôben talán a
DIR2FAT, más néven Cluster Buster vírus volt. Terjedési
módszere annyira új volt felbukkanásakor, hogy több hónapig
lappangott, míg végre a szakembereknek sikerült
felfedezniük. A terjedés lényege, hogy a DOS alá telepszik
be, és a lemezek abszolút olvasását, írását kihasználva
terjed. îgy a vírusvédelmek szinte tehetetlenek voltak
ellene.
@KBAT-vírusok@N: a vírusok egy része BAT file-okban is
képes terjedni -- ellenük egyszerû a védekezés, mindössze a
BAT file-ok írását kell felügyelni.
@KANSI-bombák@N: sajnos az is megoldható, hogy egy
egyszerû szövegfile-ba olyan vezérlôkarakterek kerüljenek,
amelyek segítségével a szövegfile kiíratásakor elindítható
egy futtatható program, ami azután már akár magát a vírust
is tartalmazhatja.
@VSzakmai segítség@N
Akármilyen jó vírusvédelmi rendszert is választunk, a baj
mindig bekövetkezhet -- s Murphy szerint ami baj
bekövetkezhet, az be is következik. Ezért nem árt az
országban mûködô számos vírusirtó csapat valamelyikével
felvenni a kapcsolatot, netán vírusmentesítô szerzôdést
kötni a nagyobb bajok megelôzésére.
@KHornák Zoltán@N
@VHacker Híradó@N
A CompuServe Hacker fórumán és a Virusforumon néztünk
körül a minap. Arra voltunk kíváncsiak, idén milyen hamis,
átvakart programverziókkal találkozhatunk. A begyûjtött
anyag hatalmas terjedelme miatt csak szemelvényeket tudunk
közreadni az újdonságokból.
A vírusterjesztôk egyik legkellemetlenebb tréfája, hogy
vírusaikat idônként feltört és megpiszkált antivírus
programokba telepítik. E durva tréfák egyik szenvedô alanya
John McAfee ViruScan programja. A hírneves szakember nem
vállal semmiféle közösséget az alábbi programverziókkal:
SCAN74, SCAN78, SCAN79, SCAN81, SCAN83, SCAN87, SCAN88,
SCAN92, SCAN94, SCAN96, SCAN98.
A COMPILER névre hallgató csomag azt állítja magáról, hogy
a Stacker freeware változata. A szövegfile-okban megadott
telefonszámok hamisak, a program törli a merevlemezrôl a
COMMAND.COM-ot.
Az LHA 3.00 verziójaként jelentkezik a PSI3. Lerombolja a
partíciós táblát, a bootszektort, a FAT|1 és FAT|2 egyes
részeit. A program emellett hivatkozik egy ZAPPER15
nevû programra, amelyre állítólag egy ""PSQR" nevû vírus
eltávolításához van szükség. Ne dôljünk be. A ZAPPER15
maga is egy trójai program, amely a memóriából vett
véletlenszerû szeméttel írja felül a merevlemez
bootszektorát.
Egy amatôr trójai programról is hírt adhatunk. Egy Danny
Swerdloff rendszeroperátor (SysOp) jelezte a JOKE nevû
csomagot. A tréfaként bemutatkozó csomag mindössze két
file-ból áll. A JOKE.DOC biztosítja a felhasználót, hogy a
batch file teljesen ártalmatlan, de ne higgyünk neki. A
batch file ugyanis az alábbi sorokat tartalmazza:
@Kc:@N
@K cd\dos@N
@K del keyboard.sys@N
@K format C:@N
Mint látszik, óvatosnak kell lennünk. Kegyetlenül
megtréfálhatnak bennünket, ha ellenôrzés nélkül lefuttatjuk
az ismeretlen eredetû batch file-okat. Ráadásul a
víruskeresôk sem használhatók e veszély csökkentésére,
mivel a batch file-okat nem ellenôrzik.
Az ARJ240 néven elôforduló program használata
életveszélyes. Egy security envelope csomagolásba galád
kezek Fish vírust terjesztô rutint csomagoltak.
Figyelmeztetést kaptunk, hogy a Proto-T vírus -- amely
állítólag a VGA kártyák RAM-jában vagy a modempufferekben
bújik meg -- a PKZip átvakart, 3.x ""verziójú"
változataiban is terjed.
@KNagy Gábor@N